package com.demo.java.OD251_300.OD293;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【字符串解密，加扰字符串】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146081936
 */
public class OdMain {
    public static void main(String[] args) {
        // 创建Scanner对象，用于读取输入
        Scanner sc = new Scanner(System.in);

        // 读取两个输入字符串s1和s2
        String s1 = sc.nextLine();  // 第一个字符串（原始字符串）
        String s2 = sc.nextLine();  // 第二个字符串（作为参考，包含需要的字符）

        // 将s2拆分为字符集合，并去重（HashSet会自动去重）
        HashSet<String> set = new HashSet<>(Arrays.asList(s2.split("")));

        // 定义一个子串的范围，即 "123456789abcdef" 这个字符串
        String sub = "123456789abcdef";

        // 初始化一个变量，用于标记s1中子串的起始位置
        int index = 0;

        // 用于存储从s1中分割出来的子串
        ArrayList<String> list = new ArrayList<>();

        // 遍历s1中的每个字符
        for (int i = 0; i < s1.length(); i++) {
            // 如果当前字符属于"123456789abcdef"中的一个字符
            if (sub.contains(String.valueOf(s1.charAt(i)))) {
                // 如果当前字符是这个子串的一个分隔符（即属于 "123456789abcdef" ），
                // 将从上次分隔位置到当前字符之间的子串添加到list中
                list.add(s1.substring(index, i));
                // 更新分隔的位置，下一次子串从i+1开始
                index = i + 1;
            } else if (i == s1.length() - 1) {
                // 如果遍历到s1的最后一个字符，且它不是"123456789abcdef"中的字符，
                // 则将剩余的部分添加到list
                list.add(s1.substring(index));
            }
        }

        // 记录最终的结果字符串
        String res = "";

        // 遍历list中的每个子串
        for (String cs : list) {
            // 如果子串不为空
            if (cs.length() > 0) {
                // 将当前子串拆分为字符集合，并去重
                HashSet<String> cset = new HashSet<>(Arrays.asList(cs.split("")));

                // 获取当前子串去重后的字符个数
                int len = cset.size();

                // 判断当前子串的字符集合大小是否小于或等于s2去重后字符集合的大小
                if (len <= set.size()) {
                    // 获取当前结果res去重后的字符集合大小
                    HashSet<String> sset = new HashSet<>(Arrays.asList(res.split("")));
                    int slen = sset.size();

                    // 如果当前子串的字符集合大小大于当前结果的字符集合大小，或者两者相等但当前子串字典序更大，则更新res
                    if (len > slen || (len == slen && cs.compareTo(res) > 0)) {
                        res = cs;
                    }
                }
            }
        }

        // 如果找到了符合条件的子串，则输出该子串的长度；否则输出"Not Found"
        System.out.println(res.length() > 0 ? res : "Not Found");
    }
}
